package com.ruoyi.system.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 资产借出申请对象 sys_asset_borrow_apply
 * 
 * @author sxy
 * @date 2025-03-26
 */
public class SysAssetBorrowApply extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 申请ID */
    private Long applyId;

    /** 资产ID */
    @Excel(name = "资产ID")
    private Long assetId;

    public String getAssetNo() {
        return assetNo;
    }

    public void setAssetNo(String assetNo) {
        this.assetNo = assetNo;
    }

    /** 资产编号 */
    @Excel(name = "资产编号")
    private String assetNo;

    /** 申请人ID */
    @Excel(name = "申请人ID")
    private Long applicantId;

    /** 借出数量 */
    @Excel(name = "借出数量")
    private Long borrowQuantity;

    /** 借出原因 */
    @Excel(name = "借出原因")
    private String borrowReason;

    /** 预期归还日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "预期归还日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedReturnDate;

    /** 审批人ID */
    @Excel(name = "审批人ID")
    private Long reviewerId;

    /** 审批状态 */
    @Excel(name = "审批状态")
    private String reviewStatus;

    public String getOverruleReason() {
        return overruleReason;
    }

    public void setOverruleReason(String overruleReason) {
        this.overruleReason = overruleReason;
    }

    /** 驳回原因 */
    @Excel(name = "驳回原因")
    private String overruleReason;

    /** 实际归还日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际归还日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualReturnDate;

    public void setApplyId(Long applyId) 
    {
        this.applyId = applyId;
    }

    public Long getApplyId() 
    {
        return applyId;
    }
    public void setAssetId(Long assetId) 
    {
        this.assetId = assetId;
    }

    public Long getAssetId() 
    {
        return assetId;
    }
    public void setApplicantId(Long applicantId) 
    {
        this.applicantId = applicantId;
    }

    public Long getApplicantId() 
    {
        return applicantId;
    }
    public void setBorrowQuantity(Long borrowQuantity) 
    {
        this.borrowQuantity = borrowQuantity;
    }

    public Long getBorrowQuantity() 
    {
        return borrowQuantity;
    }
    public void setBorrowReason(String borrowReason) 
    {
        this.borrowReason = borrowReason;
    }

    public String getBorrowReason() 
    {
        return borrowReason;
    }
    public void setExpectedReturnDate(Date expectedReturnDate) 
    {
        this.expectedReturnDate = expectedReturnDate;
    }

    public Date getExpectedReturnDate() 
    {
        return expectedReturnDate;
    }
    public void setReviewerId(Long reviewerId) 
    {
        this.reviewerId = reviewerId;
    }

    public Long getReviewerId() 
    {
        return reviewerId;
    }
    public void setReviewStatus(String reviewStatus) 
    {
        this.reviewStatus = reviewStatus;
    }

    public String getReviewStatus() 
    {
        return reviewStatus;
    }
    public void setActualReturnDate(Date actualReturnDate) 
    {
        this.actualReturnDate = actualReturnDate;
    }

    public Date getActualReturnDate() 
    {
        return actualReturnDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("applyId", getApplyId())
            .append("assetId", getAssetId())
                .append("assetNo", getAssetNo())
            .append("applicantId", getApplicantId())
            .append("borrowQuantity", getBorrowQuantity())
            .append("borrowReason", getBorrowReason())
            .append("expectedReturnDate", getExpectedReturnDate())
            .append("reviewerId", getReviewerId())
                .append("overruleReason", getOverruleReason())
            .append("reviewStatus", getReviewStatus())
            .append("actualReturnDate", getActualReturnDate())
            .append("createTime", getCreateTime())
            .toString();
    }
}
